#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdlib.h>
#include<errno.h>
#include<unistd.h>
#include<string.h>
#include<sys/mman.h>


#define LCD_SIZE 800*480*4

int main(int argc, char const *argv[])
{
    //打开液晶屏屏幕设备文件
    int lcd_fd = open("/dev/fb0",O_RDWR);
    if(lcd_fd <0)
    {
        perror("open() fail");
        exit(EXIT_FAILURE);
    }
    //映射一块内存(显存)
    int *p = mmap(NULL,LCD_SIZE,PROT_WRITE | PROT_READ,MAP_SHARED,lcd_fd,0);
    int colors[3]={0x00FF0000,0x0000FF00,0x000000FF};
    int tmp=0;
    while(1)
    {
        for(int i=0;i<800*480;i++)
        {
            //memcpy(p+i,&colors[tmp],4);
            p[i]=colors[tmp];
        }
        printf("%#08x\n",colors[tmp++]);
        tmp%=3;
        sleep(1);
    }
    munmap(p,LCD_SIZE);
    close(lcd_fd);
    return 0;
}
